package backpage.service;

import backpage.entity.po.CompoffApply;
import backpage.entity.vo.CompoffApplyVo;
import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;

import java.util.Date;
import java.util.List;

/**
 * <p>
 *  调休服务类
 * </p>
 *
 * @author 刘仁杰
 * @since 2025-04-19
 */
public interface ICompoffApplyService extends IService<CompoffApply> {


    void addCompoffApply(CompoffApply compoffApply);

    void saveCompoffApply(CompoffApply compoffApply);

    boolean deleteById(Long id);


    PageInfo<CompoffApplyVo> getListByEmployIdAndParam(Integer employId, Date startTime, Date endTime, Integer state,Integer approveId, int pageNum, int pageSize);

    PageInfo<CompoffApply>  getListByApproverIdAndParam(Integer approverId, Date startTime, Date endTime, Integer state, int pageNum, int pageSize);

    boolean appoverCompoffApply(CompoffApply compoffApply);

    void quickApproveOvertimeApply(Long id, Integer state);
    //未审批
    Integer getDaichuli(Integer approveId);


    /**
     * 获取指定员工在指定月份已审批通过的调休申请列表
     * @param employeeId 员工ID
     * @param startDate 开始时间
     * @param endDate  结束时间
     * @return 已审批通过的调休申请列表
     */
    public List<CompoffApply> getApprovedCompoffApplies(Date startDate, Date endDate);
}
